The present invention relates to the area of electronic design automation of logic design and in particular, taking into consideration power-driven timing analysis when placing a user design in a programmable integrated circuit.
Integrated circuits are important building blocks of the modern age. Technology continues to evolve and integrated circuits continue to provide improved functionality. As integrated circuits improve, so do the electronics systems that are built using integrated circuits. There are many types of integrated circuit such as memories, microprocessors, application specific integrated circuits (ASICs), and programmable logic. Programmable logic integrated circuits such as PALs, PLDs, FPGAs, LCAs, and others are becoming more complex and continually evolving to provide more user-programmable features on a single integrated circuit. Modern programmable logic integrated circuits incorporate programmable logic including logic gates, products terms, or look-up tables.
Programmable logic integrated circuits also included embedded functionality such as user-programmable memory or RAM, digital signal processors (DSPs), and on-board microcontrollers such as ARM-based or MIPS-based controllers.
As integrated circuits become more complex and provide more functionality in a smaller die size, it also becomes increasingly difficult to ensure the logic functions are implemented properly and in an optimal way. Modern digital integrated circuits have many transistors and many logic gates, more so than can be optimized manually in a reasonable amount of time, especially when time-to-market is critical in ensuring a product's success. As a specific example, a typical programmable logic design today surpasses the multimillion-gate mark.
Computer aided design (CAD) and electronic design automation (EDA) tools are available to assist engineers with the design and verification tasks. These tools are especially helpful for complex logic designs. But even with the help of computer-aided tools, the process of optimizing an integrated circuit design can be time-consuming because of the large number of variables involved. It is desirable that the design automation task is done time efficiently even for large designs. Further, it is desirable that the design automation tool maximizes performance or otherwise improves an aspect of an integrated circuit design. Some other aspects of a design that a tool may help with include improving critical path performance, removing metastability, reducing the number of logic gates used, checking or verifying functionality, removing race conditions, and others.
An important consideration when placing a user design in a programmable integrated circuit is improving performance. In the integrated circuit, there are voltage rails, which are a collection of pieces of metal found inside a chip. These are used to deliver power from a chip package to the semiconductor devices (e.g., transistors) inside the chip. The semiconductor devices are used to create the configurable logic, such as logic array blocks, of a programmable integrated circuit.
In a typical flip-chip device, there are many bumps concentrated in the center of the die. These may be referred to as “core bumps.” Many bumps mean that the voltage drop in the center of the die will generally be small. There are typically fewer bumps in the periphery of the die. These may be referred to as “periphery bumps.” Few bumps mean that the voltage drop in the periphery will be significantly higher in that area. Typically, it is not possible to add more bumps at the periphery, since that area of the die is heavily congested with routing. The periphery is where the data signals to and from the I/Os are situated.
Therefore, circuitry and logic in the periphery bump region are connected to voltage rails of the core bump region and will have a higher voltage drop characteristic than for that in the core. The circuitry and logic in the periphery bump region will typically be slower performance-wise (e.g., higher propagation delay and lower Fmax) than that in the core.
As can be appreciated, there is a need to provide an electronic design automation system to improve the performance of an integrated circuit design, and in particular, to take into account the voltage drop characteristics of logic blocks of the programmable logic integrated circuit when placing a user design into a programmable integrated circuit.